In general, the multiplexing of packets is a process in which large sized data is divided into appropriate lengths of bit streams called “packets”, where additional information related to the data, such as identification, priority, and timing are appended to the packets as a header. One of the video and audio compression standards is the MPEG-2 standard, within which video compression is defined within a given picture and between pictures, and audio is compressed to correspond to the given picture.
FIGS. 1 and 2, denominated “Prior Art,” illustrate an MPEG-2 Elementary Stream (ES) 102 divided into access units 104, wherein the access units 104 may be subdivided into a plurality of Packetized Elementary Stream (PES) packets 108. The PES packets 108 are further subdivided into PES headers 110 and ES data 112. The PES headers 110 contain information related to the data, whereas the ES data 112 contains the data itself. The PES packets 108 comprise a PES 106, which may be further subdivided into a Transport Stream (TS) 114. The TS 114 includes multiple TS packets 116, which themselves include TS packet headers 118 and payload data 120.
FIG. 2 specifically illustrates a breakdown of the TS packet headers 118 into various data fields, including a Packet Identifier (PID) 202. Further, packetized information may generally be multiplexed before being delivered to another location through the TS 114, such as via a network, satellite communication, terrestrial link, etc., where the packetized information is demultiplexed for framing in such a way that coherent video and/or audio are developed.
Currently, the majority of MPEG-2 TS demulitplexers have been implemented through hardware solutions, while a few software implementations exist. However, the software implementations differ significantly in scope, module, features offered, and implementation, which are often restricted to International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) standard 13818-1. Furthermore, most of these software implementations do not have the capability of demultiplexing TS with a synchronization layer as defined in ISO/IEC standard 14496-1. The synchronization layer demultiplexing, which is generally not provided in other solutions, is needed to support multimedia standards, like Digital Multimedia Broadcasting (DMB), and so on. Other implementations of the TS demulitplexers found are restricted to hardware and are either not extensible by very nature and/or not scalable.
Generally, one of the key system requirements while dealing with media is framing, in which decodable units are created from the received content within the TS. This is also completely ignored or not scoped by most of the known software implementations. As a consequence, system integration effort may be more towards getting those software implementations working with existing multimedia decoders in a system.
For applications based on the DMB and Digital Video Broadcasting (DVB) standards, the TS demultiplexing is mostly done at the hardware level or by a combination of software for a particular hardware. This especially may be a disadvantage for companies developing applications catering system level intellectual property to multiple vendors or while supporting multiple standards like DVB, DMB, Advanced Television Systems Committee (ATSC), etc. In this case, the applications may not be scalable and hence the extensibility of the applications to support additional features may be limited. Further, these solutions may reduce reusability across the applications.
Additionally, the ability to demultiplex a variety of standards in an efficient manner within a single architecture, independent of the architecture, is not present within the existing MPEG-2 TS demultiplexers.